<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
 * PHP version 5
 *
 * This source file is subject to version 2.1 of the GNU Lesser General Public
 * License, that is bundled with this package in the file COPYING, available
 * through the world wide web at the following URI:
 * http://www.gnu.org/copyleft/lesser.html.
 *
 * @package    ZNF
 * @subpackage Action
 * @author     Alessandro Rossini <http://www.alessandrorossini.org>
 * @author     Graziano Liberati <http://www.liberati.org>
 * @copyright  2004-2007 The ZNF Development Team
 * @license    LGPL License 2.1 <http://www.gnu.org/copyleft/lesser.html>
 * @version    SVN $Id: ActionForm.php 43 2007-06-26 23:36:35Z aronnax $
 * @since      Release 0.5.0
 * @link       http://www.zeronotice.org
 */

/**
 * <i>ZNF_Action_ActionForm</i> checks and filters all properties coming from the form before the <i>ZNF_Action_Action->execute()</i> method is called.
 *
 * Is associated with one or more <i>ZNF_Action_ActionMapping</i>.
 *
 * First the properties must be populated, then if in the module configuration
 * file the <i>validate</i> attribute of the <i>action</i> element is set to
 * <i>true</i> the <i>ZNF_Action_ActionForm->validate()</i> method will be
 * called by the controller <i>ZNF_Action_RequestProcessor</i>, which gives a
 * chance to verify that the properties submitted are corrects and valids.
 *
 * If this method finds problems adds error messages to a
 * <i>ZNF_Action_ActionErrors</i> object. Otherwise, the
 * <i>ZNF_Action_ActionForm->validate()</i> method returns an empty
 * <i>ZNF_Action_ActionErrors</i> object, indicating that everything is
 * acceptable and the corresponding <i>ZNF_Action_Action->execute()</i> method
 * should be called.
 *
 * Subclasses should provide appropriate getter and setter methods for all of
 * the properties they wish to expose, plus override any of the public or
 * protected methods for which they wish to provide modified functionality.
 *
 * @access     public
 * @package    ZNF
 * @subpackage Action
 * @author     Alessandro Rossini <http://www.alessandrorossini.org>
 * @author     Graziano Liberati <http://www.liberati.org>
 * @copyright  2004-2007 The ZNF Development Team
 * @license    LGPL License 2.1 <http://www.gnu.org/copyleft/lesser.html>
 * @version    SVN $Id: ActionForm.php 43 2007-06-26 23:36:35Z aronnax $
 * @since      Release 0.5.0
 * @link       http://www.zeronotice.org
 */
class ZNF_Action_ActionForm
{

    /**
     * Constructs a new <i>ZNF_Action_ActionForm</i> object.
     *
     * @access public
     */
    public function __construct()
    {
    }

    /**
     * Populates the properties of the class with the properties submitted, must be implemented by subclasses.
     *
     * @access public
     * @return boolean
     */
    public function populate()
    {
        return false;
    }

    /**
     * Validates the properties submitted, must be implemented by subclasses.
     *
     * @access public
     * @return ZNF_Action_ActionErrors
     */
    public function validate()
    {
        return new ZNF_Action_ActionErrors();
    }

    /**
     * Destroys the <i>ZNF_Action_ActionForm</i> object.
     *
     * @access public
     */
    public function __destruct()
    {
    }

}

/**
 * <i>ZNF_Action_ActionFormException</i> is the exception type for the <i>ZNF_Action_ActionForm</i> class.
 *
 * <i>ZNF_Action_ActionFormException</i> extends the <i>Exception</i> class of PHP5.
 *
 * @access     public
 * @package    ZNF
 * @subpackage Action
 * @author     Alessandro Rossini <http://www.alessandrorossini.org>
 * @author     Graziano Liberati <http://www.liberati.org>
 * @copyright  2004-2007 The ZNF Development Team
 * @license    LGPL License 2.1 <http://www.gnu.org/copyleft/lesser.html>
 * @version    SVN $Id: ActionForm.php 43 2007-06-26 23:36:35Z aronnax $
 * @since      Release 0.5.0
 * @link       http://www.zeronotice.org
 */
class ZNF_Action_ActionFormException extends Exception
{
}

?>
